package com.example.xiaomengai.mapper;


import com.example.xiaomengai.entity.Character;
import com.example.xiaomengai.entity.Relation;
import com.example.xiaomengai.entity.RelationProjection;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.data.neo4j.repository.Neo4jRepository;

import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;


@Repository
public interface CharacterMapper extends Neo4jRepository<Character, Long> {

    // 精确查询人物
    @Query("MATCH (n:人物 {name: $name}) RETURN n")
    Character findByName(@Param("name") String name);

    // 动态关系类型查询（注意反引号处理特殊字符）
//    @Query("MATCH (start)-[r:` + {#relation}`]->(end) RETURN start, r, end")
//    List<RelationProjection> findRelationsByType(@Param("relation") String relation);
}

    // 2. 查询所有关系（显式添加 @Param 注解）
//    @Query("MATCH (n:人物 {name: $name})-[r]->(o) RETURN type(r) AS relationType, o.name AS targetName, labels(o) AS targetLabels")
//    List<Relation> findRelations(@Param("name") String name);
//
//    // 3. 动态查询特定关系
//    @Query("MATCH (n:人物 {name: $name})-[r]->(o) WHERE type(r) = $relation RETURN n, r, o")
//    List<RelationProjection> findDynamicRelation(
//            @Param("name") String name,
//            @Param("relation") String relation
//    );
//}